//首页-打印服务

import {  getTimeNow } from '../../utils/index';
const db = wx.cloud.database(); //调用获取默认环境的数据库的引用

Page({
  /**
   * 页面的初始数据
   */
  data: {
    printImg: '',
    address: '',
    userInfo: {},
    pageNum: null,
    copieNum: 1,
    remark: '',
    colorPrint: false,
    twoSided: false,
    path: '',
  },

  // 是否双面
  getTwoSided(e) {
    this.setData({
      twoSided: e.detail.value
    })
  },

  // 是否彩印
  getColorPrint(e) {
    this.setData({
      colorPrint: e.detail.value
    })
  },

  submit() {
    const {
      printImg,
      address,
      userInfo,
      pageNum,
      copieNum,
      colorPrint,
      remark,
      twoSided,
      phone
    } = this.data;
    if (!printImg || !address || !pageNum || !copieNum) {
      wx.showToast({
        icon: 'none',
        title: '您填写的信息不全',
      })
      return;
    }
    db.collection('order').add({ //在云数据库中新增记录
      data: {
        // 模块的名字
        name: '打印服务',
        // 当前时间
        time: getTimeNow(),
        // 订单金额
        money: colorPrint ? ( copieNum * 1 * pageNum + 3 ) : ( copieNum * 0.5 * pageNum + 3 ),
        // 订单状态
        state: '待帮助',
        // 收件地址
        address,
        // 订单信息
        info: {
          // 打印文件
          printImg,
          // 页数
          pageNum,
          //份数
          copieNum,
          // 备注
          remark,
          // 是否彩印
          colorPrint,
          // 是否双面
          twoSided,
        },
        // 用户信息
        userInfo,
        // 用户手机号
        phone,
        createTime: db.serverDate()
      },
      success: (res) => {
        wx.switchTab({
          url: '../index/index',
        })
        wx.showToast({
          title: '发布成功',
        })
      }
    })
  },

  // 备注
  getRemark(e) {
    this.setData({
      remark: e.detail.value
    })
  },

  // 页数
  getPageNumber(e) {
    this.setData({
      pageNum: Number(e.detail.value)
    })
  },

  // 份数
  getcopieNumber(e) {
    this.setData({
      copieNum: Number(e.detail.value)
    })
  },

  // 收件地址
  selectAddress() {
    wx.setStorageSync('urlNow', 'print')
    wx.redirectTo({
      url: '../address/address',
    })
  },

  getImg() {
    wx.chooseMessageFile({ //从客户端会话选择文件
      count: 1,
      type: 'file',
      success: (res) => {
        // tempFilePath可以作为 img 标签的 src 属性显示图片
        console.log(res); //在控制台中打印输出
        const { path, name } = res.tempFiles[0]; //临时保存的路径
        this.setData({
          path, //使用 wx.chooseMessageFile API 从客户端会话选择文件，并将其临时保存到 path 变量中
        })
        wx.showLoading({
          title: '加载中',
        })
        const random = Math.floor(Math.random() * 1000);
        wx.cloud.uploadFile({
          cloudPath: `print/${random}${name}`,
          filePath: path,
          success: (res) => {
            console.log(res);
            let fileID = res.fileID;
            this.setData({
              printImg: fileID,
            })
            console.log(this.data.printImg);
            wx.hideLoading();
          },
          fail: (err) => {
            console.log(err);
          }
        })
      }
    })
  },
  
  //预览文件
  preview() { 
    wx.openDocument({ //打开文件
      filePath: this.data.path, //打开的路径
      success: function (res) {
        console.log('打开文档成功')
      }
    })
  },
  
  //用户条款&隐私策略
  toAgreement() {
    wx.navigateTo({
        url: '../agreement/agreement',
    })
},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const address = wx.getStorageSync('addressNow');
    const userInfo = wx.getStorageSync('userInfo');
    if (address) {
      const {
        build,
        houseNumber,
        phone
      } = address;
      this.setData({
        address: `${build}-${houseNumber}`,
      })
      this.setData({
        phone: `${phone}`
      })
    }
    this.setData({
      userInfo,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
